package com.zky.kafka.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.listener.DefaultErrorHandler;
import org.springframework.util.backoff.FixedBackOff;

@Configuration
public class KafkaConfig {
    @Bean
    public DefaultErrorHandler errorHandler() {
        // 重试 3 次，每次间隔 1 秒
        FixedBackOff backOff = new FixedBackOff(1000L, 3);
        DefaultErrorHandler errorHandler = new DefaultErrorHandler(backOff);

        // 可选：配置哪些异常直接丢弃，不重试
        errorHandler.addNotRetryableExceptions(IllegalArgumentException.class);
        //重试完之后如果没有配置死信队列，则自动丢弃消息

        errorHandler.setAckAfterHandle(false); // 失败不提交 offset(不自动丢弃)
        return errorHandler;
    }
}
